package cn.explink.dop.tools;

import org.apache.commons.lang.StringUtils;

import cn.explink.dop.entity.vo.DeliveryManVO;
import cn.explink.dop.entity.vo.OrderVO;
import cn.explink.dop.service.impl.SmartDistributorServiceImpl;
/**
 * 
* @ClassName: PushNewMessageRunnable 
* @Description: 调用棒棒糖消息推送接口的线程  1：给配送员推送接收订单的消息  2：给配送员推送取消配送的消息
* @author 小强
* @date 2015年7月13日 下午3:20:21 
*
 */
public class PushNewMessageRunnable implements Runnable{
	private OrderVO orderVO;
	private DeliveryManVO deliveryManVO;
	private int flag;
	public PushNewMessageRunnable(OrderVO orderVO, DeliveryManVO deliveryManVO,int flag){
		this.orderVO = orderVO;
		this.deliveryManVO = deliveryManVO;
		this.flag = flag;
	}
	@Override
	public void run(){
		if(flag == 1){
			this.newOrderPushMessage(orderVO, deliveryManVO);
		}else if(flag == 2){
			this.cancelOrderPushMessage(orderVO);
		}
	}
	/**
	 * 
	 * @Title: newOrderPushMessage
	 * @Description: 针对每一个订单的配送员，给其推送是否配送该订单的消息
	 * @author 小强
	 * @param @param orderVO
	 * @param @param deliveryManVO 设定文件
	 * @return void 返回类型
	 * @throws
	 */
	public void newOrderPushMessage(OrderVO orderVO, DeliveryManVO deliveryManVO) {
		boolean flag = true;
		String param = "token=ac5f97115cd4df280e37871c7569d862";

		if (deliveryManVO != null && deliveryManVO.getPostmanid() != null
				&& !"".equals(deliveryManVO.getPostmanid())) {// 如果这个人存在，并且postman_id也存在且不为空
			param += "&postman_id=" + deliveryManVO.getPostmanid();
			if (orderVO.getId() != null && !"".equals(orderVO.getId())) {// 如果订单的订单id存在且不为空
				param += "&out_trade_no=" + orderVO.getId();
			} else {
				flag = false;
			}
		} else {
			flag = false;
		}

		if (flag) {
			String url = GetProjectUrl.getNewOrderUrl();
			String results = GetHttpConnect.sendGet(url, param);
			if (results.contains("ok")) {
				flag = true;
			}
		}
		if (!flag) {
			// TODO 如果信息推送不成功，那么该怎么做，需要进一步完成
		}
	}

	/**
	 * 
	 * @Title: cancelOrderPushMessage
	 * @Description: 针对一个配送员超时未接的订单，给该配送员推送消息，告知其已被超时未接该订单，默认其拒绝该订单的配送
	 * @author 小强
	 * @param @param orderVO 设定文件
	 * @return void 返回类型
	 * @throws
	 */
	public void cancelOrderPushMessage(OrderVO orderVO) {
		boolean flag = true;
		String param = "token=ac5f97115cd4df280e37871c7569d862";
		if (orderVO != null && orderVO.getDeliveryManID() != null
				&& StringUtils.isNotBlank(orderVO.getDeliveryManID())
				&& orderVO.getDeliveryMan() != null
				&& !"".equals(orderVO.getDeliveryMan().getPostmanid())) {// 如果这个人存在，并且postman_id也存在且不为空
			param += "&postman_id=" + orderVO.getDeliveryMan().getPostmanid();
			if (orderVO.getId() != null && !"".equals(orderVO.getId())) {// 如果订单的订单id存在且不为空
				param += "&out_trade_no=" + orderVO.getId();
			} else {
				flag = false;
			}
		} else {
			flag = false;
		}

		if (flag) {
			String url = GetProjectUrl.getCancelOrderUrl();
			String results = GetHttpConnect.sendGet(url, param);
			if (results.contains("ok")) {
				flag = true;
			}
		}

		if (!flag) {
			// TODO 如果信息推送不成功，那么该怎么做，需要进一步完成
		}
	}
}
